package com.example.service.flowable;

import com.example.vo.ResultVo;
import com.example.vo.process.EvectionVo;
import org.springframework.beans.factory.annotation.Value;

/**
 * 出差流程业务接口类
 */
public interface IEvectionService {

    /**
     * 创建一个出差流程实例
     * @param evectionVo
     * @return
     */
    ResultVo createEvectionProcessInstance(EvectionVo evectionVo);

    /**
     * 获取审批人员列表
     * @param userId
     * @return
     */
    ResultVo getAssessingOfficer(String userId);

    /**
     * 查看个人出差申请，还在处理的流程
     * @return
     * @param userId
     */
    ResultVo queryMyEvectionApply(String userId);

    /**
     * 查看出差申请详情
     * @param processInstanceId
     * @return
     */
    ResultVo queryEvectionApplyDetail(String processInstanceId);

    /**
     * 查看出差审批任务
     * @param userId
     * @return
     */
    ResultVo queryEvectionAuditTask(String userId);

    /**
     * 完成出差审批
     * @param taskId
     * @param approved
     * @param reply
     * @return
     */
    ResultVo completeEvectionAudit(String taskId, Boolean approved, String reply);

    /**
     * 查看出差申请详情
     * @param taskId
     * @return
     */
    ResultVo queryTaskDetail(String taskId);
}
